Web babyXSS

BabyXSS

题目描述

打开题目连接,界面如下:


看到第一句:flag在admin.php中,只有admin能得到它。,点击admin.php进入admin界面

第二句:你可以向admin发送消息,求他给你flag,但他不会鸟你。哈哈哈哈
下边有两个输入框,随便在里边输点内容,结果如下图:

Proof of work失败。

知识准备

  1. XSS:https://ctf-wiki.github.io/ctf-wiki/web/xss/ ,内容很详细,XSS简介+XSS类型+XSS利用 (此题为Cookies窃取)
  2. Proof of work
    PoW——工作量证明 :https://www.jianshu.com/p/2aea9cdc825a
  3. 安装Proofofwork :https://github.com/kmyk/libproofofwork
    命令pip install Proofofwork,我用的是Python2.7版本,pip安装时报错:

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date. A future version of pip will drop support for Python 2.7.

弃用:Python 2.7将于2020年1月1日到期。请升级您的Python,因为在该日期之后将不再维护Python 2.7。 未来的pip版本将放弃对Python 2.7的支持。
今天pip时报出这个信息,python2也快走到头了,且行且珍惜。

于是安装了Python3版本,安装还是出错。
Command "D:\python3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Administrator\\AppData\\Local\\Temp\\pycharm-packaging\\proofofwork\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close()
尝试解决这个错误,试了好几个方法后,无果,果断换Linux系统安装。还是出现同样错误。

直接下载安装包,还是不行,放弃这个方法。

题目分析

  1. substr(md5(‘’),0,6) === ‘7502a1’
    substr()函数是截取字符串,这里的字符串是用md5加密后的,取加密后字符串的前6个字符,使它强等于‘7502a1’。
  2. 用md5加密字符串 https://blog.csdn.net/t8116189520/article/details/78928334
    itertools模块用法:http://outofmemory.cn/code-snippet/2390/python-itertools-module-learn-note
    startswith函数用法:https://blog.csdn.net/doiido/article/details/43280657
    Python代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
from itertools import count
import hashlib

def md5(str1):
m = hashlib.md5(str1.encode(encoding='utf8'))
return m.hexdigest()

#从1开始循环,默认每次加1,直到与示例字符串相等,退出循环
for i in count(1):
s=md5(str(i))
if s.startswith('c3301d'):
print(i)
break
  1. 把得到的字符串,输入md5框中,结果如下

    说明输入的字符串是正确的。
  2. 在XSS平台上创建自己的项目,选择默认模板,根据下边的代码,选择代码在mesage框中输入,再输上MD5,步骤2中得到的字符串,提交,在xss平台的项目内容中,可以看到得到的信息,打开后有cookie,cookie里的token是admin的。
  3. 拿到admin的cookie之后,就可以假冒admin拿到flag。
    在burpsuite软件中抓包,抓包详细操作之前已经学过,这里不再赘述(在https://hanqd.github.io/2019/04/11/20190411/) ,抓admin.php网页的包,主要是修改其cookie。
    抓包结果如下

    把上边的cookie改为XSS平台得到的cookie(即admin的cookie),在forward,在admin.php界面即可看到flag。
文章目录
  1. 1. BabyXSS
    1. 1.1. 题目描述
    2. 1.2. 知识准备
    3. 1.3. 题目分析